package java_thinking.unit_21._21_1;

/**
 * @Desc:   定义一个任务让线程执行
 * @author: cww
 * @DateTime: 2019/5/28 20:39
 */

public class LiftOff implements Runnable {
    protected int countDown = 10;
    private static int taskCount = 0;
    private final int id = taskCount++;

    public LiftOff() {
    }

    public LiftOff(int countDown) {
        this.countDown = countDown;
    }

    public String status() {
        return "#" + id + "(" + (countDown > 0 ? countDown : "LiftOff!")+"), ";
    }
    @Override
    public void run() {
        while (countDown-- > 0) {
            System.out.println(status());
            /**
             * 该方法是对线程调度器的一种建议，它在声明：我已经执行完生命周期中最重要的部分了，
             * 刺客正式切换给其他任务执行一段时间的大好时机
             * (java线程机制的一部分，可以将CPU从一个线程转移给另一个线程)
             */
            Thread.yield();
        }
    }
}

class MainThread {
    public static void main(String[] args) {
        LiftOff lf = new LiftOff();
        lf.run();
    }
}